针对BM25遇到长文档时失效情况的一种高效解决方案
BM25在长文档下会失效,文本是记录SIGIR上的一个Paper的解决方案~
当BM25遇到长文档
文档相关性模型-BM25
的拟合公式如下:
其中第一部分表示BIM
的值,第二部分表示在文档中的权重,第三部分表示在查询词中的权重,(具体符号解释参考之前的BM25介绍)现将第二部分单独拿出来:
其中:
现在先来做一个假设,假设当前有个文档
很长很长
,也就是$dl$这个值很大,则可以发现$c’(q,D)$就会很小,小到接近于0,因此会导致文档部分的因子$f(q,D)$也会接近于0,几乎和这个词没有出现在这个文档一样..-_-
在这种情况下,针对长文档,BM25
的效果会比较差
下面的图就是BM25
在不同文档长度下的实验
可以发现在BM25
中,随着文档的变长,相关性在变高,但是其被检索的概率并没有随着相关性的趋势而变高,也就是长文档使用BM25
的效果变得比较差。
高效解决方案
为了避免长文档在BM25
的相关性中被惩罚,我们需要对文档权重$f(q,D)$做一个规范化约束,但是由于BM25
早已被公认为是一种比较有效的文档相关性,所以这个约束不能破坏掉BM25
自身的特征.
我们希望规范化约束之后保持以下三点特性:
- 当$c’(q,D)=0$的时候,$f(q,D)$也为0
- 随着$c’(q,D)$的变大,$f(q,D)$也需要呈现单调递增,但是会趋向于一个最大值
- 随着$c’(q,D)$的减少,$f(q,D)$会单调递减趋向于一个最小值,但是这个最小值需要足够大
就是因为原生的
BM25
不满足第3点,所以会出现在长文档下BM25
出现失效的情况
而下面的改进$f’(q,D)$正好可以满足上述三个特性:
使用时针对原来的$c’(q,D)$值增加了一个平滑项$\delta$,增加了平滑项之后依然满足第1、2点
特性,并且当$c’(q,D)>0$的时候$f’(q,D)$有一个下界:
这样也正好可以满足
第3点
特性
进行该项小改进之后的模型称为BM25L
,遇到长文档时并不会失效,并且还保持原有的BM25
特性.
实验效果验证
针对多个数据集 ,使用不同的调节参数$b$,$k_1$,$\delta$进行试验:
在第三章图明显可以发现BM25L
的效果对BM25
有较大的绝对提升,其中较优的参数范围为:
- $b \in [0,3,0.6] $
- $k_1 \in [1.0,2.0]$
- $\delta = 0.5$时最优
参考
本作品采用[知识共享署名-非商业性使用-相同方式共享 2.5]中国大陆许可协议进行许可,我的博客欢迎复制共享,但在同时,希望保留我的署名权kubiCode,并且,不得用于商业用途。如您有任何疑问或者授权方面的协商,请给我留言。